package com.hsp.Demo_03_object;

public class Demo_24 {
    public static void main(String[] args) {
        /*
        14、扩展题：
           有个Tom设计他的成员变量。成员方法， 可以电脑猜拳。
           电脑每次都会随机生成0， 1， 2
           0：表示石头    1：表示剪刀    2：表示布
           并要可以显示Tom的输赢次数
         */
        //赢的次数
        int sucess = 0;
        //输的次数
        int fail = 0;
        //平局的次数
        int draw = 0;

        Tom tom = new Tom();
        for(int i = 0; i < 10; i++){
            System.out.println("========第" + (i+1) + "次============");
            //得到tom的出拳
            int anInt = tom.getInt();
            System.out.println("tom的出拳:" + tom.mora(anInt));
            int num2 =  (int)(Math.random()*3);
            System.out.println("电脑的出拳：" + tom.mora(num2));
            int compare = tom.compare(anInt, num2);
            if(compare == 1){
                sucess++;
                System.out.println("第" + (i+1) + "次，是tom赢");
            }else if(compare == -1){
                fail++;
                System.out.println("第" + (i+1) + "次，是tom输");
            }else{
                draw++;
                System.out.println("第" + (i+1) + "次，是tom平");
            }
        }
        System.out.println("tom赢的次数：" + sucess);
        System.out.println("tom输的次数：" + fail);
        System.out.println("tom平的次数：" + draw);

    }
}

class Tom{
    //代表出的拳： 0：表示石头    1：表示剪刀    2：表示布
    public int num;

    //得到了tom的出拳结果
    public int getInt(){
        return (int)(Math.random()*3);
    }

    public int compare(int num1, int num2){
        /*
        因为对于出拳结果来说:
        0(拳头) > 1（剪刀）   1（剪刀） > 2(布)  2（布） < 0（石头）
         */
        if(num1 > num2){
            if(num1==2&&num2==0){
                return 1;
            }else{
                return -1;
            }
        }else if(num1 == num2){
            return 0;
        }else{
            if(num1==0&&num2==2){
                return  -1;
            }else{
                return 1;
            }
        }
    }

    public String mora(int i){
        switch (i){
            case 0:
                return "石头";
            case 1:
                return "剪刀";
            case 2:
                return "布";
            default:
                return "";
        }
    }

}
